package com.pubinfo.passbook.common.service.master;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pubinfo.passbook.common.entity.TRabbitmqOrgConvert;
import com.pubinfo.passbook.common.model.bo.rabbitmq.RabbitMqRoot;

import java.util.List;

/**
 * @author zhouch
 * @date 2021-10-27
 */
public interface TRabbitmqOrgConvertService extends IService<TRabbitmqOrgConvert> {
  
  /**
   * 对不同组织消息的处理类型进行处理.
   *
   * @param orgMsg
   * @return
   */
  Boolean processOrgMsg(RabbitMqRoot orgMsg);
  
  /**
   * 通过父组织ID获得所有的子组织
   *
   * @return
   */
  List<TRabbitmqOrgConvert> getSubOrgsBySuperOrgId(Long superOrgId);
  
  /**
   * 获得最上级组织
   *
   * @return
   */
  TRabbitmqOrgConvert getOrgTreeRoot();
  
  /**
   * 搜索组织通过名称
   *
   * @param keyword
   * @return
   */
  List<TRabbitmqOrgConvert> searchOrgsByKeyword(String keyword);
  
  /**
   * 得到该组织以及其所有上层结构.
   */
  TRabbitmqOrgConvert getOrgWithSuperRelation(Long orgId);
}
